home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume89 / unix / file.1 < prev    next >
Internet Message Format  |  1989-07-12  |  31KB

  1. Path: xanth!ukma!rutgers!apple!sun-barr!newstop!sun!swap!page
  2. From: page%swap@Sun.COM (Bob Page)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v89i163:  file - display file type
  5. Message-ID: <114906@sun.Eng.Sun.COM>
  6. Date: 12 Jul 89 00:09:26 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 828
  9. Approved: page@sun.com
  10.  
  11. Submitted-by: ehoogerbeets@rose.waterloo.edu (Edwin Hoogerbeets)
  12. Posting-number: Volume 89, Issue 163
  13. Archive-name: unix/file.1
  14.  
  15. "file" is a unix-like utility to determine the type of file you have.
  16.  
  17. [uuencoded executable included.  ..bob]
  18.  
  19. # This is a shell archive.
  20. # Remove anything above and including the cut line.
  21. # Then run the rest of the file through 'sh'.
  22. # Unpacked files will be owned by you and have default permissions.
  23. #----cut here-----cut here-----cut here-----cut here----#
  24. #!/bin/sh
  25. # shar: SHell ARchive
  26. # Run the following text through 'sh' to create:
  27. #    ReadMe
  28. #    makefile
  29. #    file.c
  30. #    file.uu
  31. # This is archive 1 of a 1-part kit.
  32. # This archive created: Tue Jul 11 17:03:20 1989
  33. echo "extracting ReadMe"
  34. sed 's/^X//' << \SHAR_EOF > ReadMe
  35. X             file v1.0 - Unix-like utility to determine
  36. X                       the type of a file
  37. X
  38. X                Copyright 1989 Edwin Hoogerbeets
  39. X
  40. X  This code is freely redistributable as long as no charge other than
  41. X  reasonable copying fees is levied for it.
  42. X
  43. XUsage:
  44. X
  45. X  file filename [filename ...]
  46. X
  47. X  [Options? We don need no steekeen options!]
  48. X
  49. XNotes:
  50. X
  51. X  This silly little hack I wrote for no particular reason other than
  52. X  boredom in CS classes, where it was mostly written. ;-)
  53. X
  54. X  File recognizes the following types of files:
  55. X
  56. X    Amiga .font file - File containing the description of what is in
  57. X                       a subdirectory of the fonts directory.
  58. X                       ex: garnet.font
  59. X
  60. X    Amiga .info file - The silly little files you find hanging around
  61. X                       in any directory you looked at with the WorkBench.
  62. X                       ex: .info
  63. X
  64. X    Amiga icon .info file - A disk, drawer, project or tool icon.
  65. X                            ex: System.info
  66. X
  67. X    Amiga load file - this type includes executables, shared libraries,
  68. X                      devices, and loadable font files.
  69. X                      They all have the format of an executable, so it
  70. X                      is difficult to tell which is which. (anyone have
  71. X                      a way of telling? Please mail me if you do)
  72. X                      ex: c:Type, arp.library, ramdrive.device, garnet/16
  73. X
  74. X    Amiga object file - A file compiled with Lattice C, PDC or A68k.
  75. X                        ex: SetFont.o
  76. X
  77. X    block compressed xx bit code data - a file compressed with the
  78. X                                        compress program.
  79. X                                        ex: constitution.Z
  80. X
  81. X    commands text - this file was not marked as a script file, but
  82. X                    contains commands suitable as a script.
  83. X                    ex: FooScript
  84. X
  85. X    C source code - file contains constructs that look like C. If these
  86. X                    constructs are not found, the file may be mistaken
  87. X                    for a ARexx script if the first two characters are
  88. X                    `/*'
  89. X                    ex: file.c
  90. X
  91. X    data - the file contains binary data of an unknown format.
  92. X
  93. X    directory - file is a directory
  94. X
  95. X
  96. X    empty - the file contains nothing, making it impossible to determine
  97. X            what kind of file it was meant to be in its former life.
  98. X
  99. X    execute script file - a file meant to be run with execute.
  100. X                          ex: s:DPAT
  101. X
  102. X    IFF format file - File recognizes the following forms:
  103. X
  104. X                       8SVX   instrument file format
  105. X                       ANIM   anim file format
  106. X                       ACBM   Amiga compressed bit map format
  107. X                       ILBM   interleave bit map format
  108. X                       SMUS   simple music format
  109. X
  110. X    LaTeX source code - input file suitable for the LaTeX document
  111. X                        preparation system.
  112. X                        ex: resume.tex
  113. X
  114. X    Manx 3.6 run-time library - objects compiled with Manx 3.6 and
  115. X                                stuck into a linkable library.
  116. X                                ex: ed32.lib
  117. X
  118. X    Manx 3.4 object code
  119. X    Manx 3.6 object code - file compiled with Manx 3.4 or 3.6 respectively
  120. X                           ex: file.o
  121. X
  122. X    Modula II source code - file is source code for any Modula II
  123. X                            ex: Primes.mod
  124. X
  125. X    SEA ARC compressed archive - an archive compressed with the ARC program.
  126. X                                 ex: boff.arc
  127. X
  128. X    script file - text file with the script bit set.
  129. X                  ex: s:FindOldFiles
  130. X
  131. X    shell commands - the file was not labeled as a script, but contains
  132. X                     shell commands.
  133. X                     ex: s:.cshrc
  134. X
  135. X    shell script - the file is a script for the Dillon/Drew shell.
  136. X                   It searches for `#!' at the beginning of the file,
  137. X                   so please add these to your Dillon/Drew shell scripts.
  138. X                   ex: BackUpHD.sh
  139. X
  140. X    TeX device independent output file - output of Tex, LaTeX, BibTeX
  141. X                                         or AMSTeX.
  142. X                                         ex: letter.dvi
  143. X
  144. X    TeX source code - a file suitable for input to TeX document formatting
  145. X                      system.
  146. X                      ex: resume.tex
  147. X
  148. X    text - the file contains ascii characters of an unknown format
  149. X           ex: ReadMe
  150. X
  151. X    uuencoded file - a file that is suitable as input for uudecode
  152. X                     ex: file.uue
  153. X
  154. X    yacc input file - a file that is suitable as input to the yacc or
  155. X                      bison parser generator programs.
  156. X                      ex: grammar.y
  157. X
  158. X    yacc or lex input file - a file that is either suitable for yacc
  159. X                             (bison) or lex. The exact format cannot
  160. X                             be determined by file due to its
  161. X                             unsophisticatedness. (how's that for a word?)
  162. X                             ex: lex.l or hiddengrammar.y
  163. X
  164. X    Zoo x.xx archive - an archive made with the zoo program.
  165. X                       ex: file.zoo
  166. X
  167. XWarning:
  168. X
  169. X  This program is a kludge. This program is only a kludge. Had this program
  170. X  been real, it would have been a heck of a lot bigger. As it is, it only
  171. X  checks the first 484 bytes of a file for format clues, and makes guesses
  172. X  as to the probable file type. For binary files, magic numbers found at
  173. X  the beginning of the file are checked. For text files, familiar sequences
  174. X  are searched for throughout the excerpt to make the guess.
  175. X
  176. XThings it May Get Wrong:
  177. X
  178. X  - An ARexx script starts with `/*', which, perchance, also start off many
  179. X    C programs
  180. X
  181. X  - Many TeX or LaTeX files contain "{\n", which are also found in
  182. X    C programs
  183. X
  184. X  - a binary file may very rarely contain only printable ascii characters
  185. X    in the first section of the file, leading file to think it is
  186. X    actually a piece of text. (no, your program has not been magically
  187. X    transformed into a .font file!)
  188. X
  189. XA Comment:
  190. X
  191. X  If you have a favourite file format that you would like added to the
  192. X  program, send me mail and I will add it. Better yet, send me the
  193. X  (freely redistributable) file that is characteristic of the file type.
  194. X  Better yet, tell me what the distinguishing characteristic is.
  195. X  Well, come to think of it, forget the above, and just send me your
  196. X  patched version of file and I will incorperate the changes into the
  197. X  official release. Have a nice day. This has been more than one
  198. X  comment, hasn't it? I babble sometimes.
  199. X
  200. XFiles:
  201. X
  202. X ReadMe                    rwed    7111   14  21-May-89 23:21:26
  203. X file                      rwed    9352   19  21-May-89 22:59:15
  204. X file.c                    rwed    8528   17  21-May-89 22:58:10
  205. X makefile                  rwed     337    1  19-May-89 23:29:52
  206. X55 Blocks, 25328 Bytes used in 4 files
  207. X
  208. XPlease redirect any comments, criticisms or dark chocolate to:
  209. X
  210. XEdwin Hoogerbeets (It's a Dutch name. I was born with it... )
  211. XUsenet: ehoogerbeets@rose.waterloo.edu (watmath!watrose!ehoogerbeets) or
  212. X        edwin@watcsc.waterloo.edu
  213. XCIS:    72647,3675 (any time at all)
  214. X
  215. X
  216. X
  217. X
  218. SHAR_EOF
  219. echo "extracting makefile"
  220. sed 's/^X//' << \SHAR_EOF > makefile
  221. X#
  222. X# makefile for file
  223. X#
  224. X# Copyright 1989 Edwin Hoogerbeets
  225. X#
  226. X# This code is freely redistributable as long as no charge other than
  227. X# reasonable copying fees is levied for it.
  228. X#
  229. X
  230. XCFLAGS=+L
  231. X#-n -DDEBUG
  232. X
  233. XLNDEBUG=
  234. X#-g
  235. X
  236. XBINDIR=dh0:usr/local/bin
  237. X
  238. Xfile: file.o
  239. X      ln file.o $(LNDEBUG) -lc32 -o $@
  240. X
  241. Xinstall: file
  242. X      cp -f file $(BINDIR)
  243. X
  244. X
  245. SHAR_EOF
  246. echo "extracting file.c"
  247. sed 's/^X//' << \SHAR_EOF > file.c
  248. X/*
  249. X * file v1.0 - a Unix-like utility to determine the type of a file
  250. X *
  251. X * Copyright 1989 Edwin Hoogerbeets
  252. X *
  253. X * This code is freely redistributable as long as no charge other than
  254. X * reasonable copying fees is levied for it.
  255. X *
  256. X *
  257. X * Usage: file file [file ...]
  258. X *
  259. X */
  260. X#include <stdio.h>
  261. X#include <ctype.h>
  262. X#include <libraries/dosextens.h>
  263. X#include <exec/memory.h>
  264. X
  265. X#define toint(a) (int)((a) - '0')
  266. X#define BLOCKSIZE 484L              /* almost size of one disk block */
  267. X
  268. Xtypedef struct asdf {
  269. X  int  length;
  270. X  char *name;
  271. X  char *pattern;
  272. X} pattern;
  273. X
  274. X/* for binary files that start with a magic number */
  275. Xpattern bmagic[] = {
  276. X  4,"Amiga load file",                "\x00\x00\x03\xf3",
  277. X  4,"Amiga object file",              "\x00\x00\x03\xe7",
  278. X  2,"Amiga run-time library",         "\xec\x62",
  279. X  2,"Manx 3.6 run-time library",      "\x61\x6a",
  280. X  2,"Manx 3.6 object file",           "\x41\x4a",
  281. X  2,"Manx 3.4 object file",           "\x6a\x67",
  282. X  27,"TeX device independent output file",
  283. X                                      "\xf7\x02\x01\x83\x92\xc0"
  284. X                                      "\x1c\x3b\x00\x00\x00\x00"
  285. X                                      "\x03\xe8\x1b\x20\x54\x65"
  286. X                                      "\x58\x20\x6f\x75\x74\x70"
  287. X                                      "\x75\x74\x20",
  288. X  2,"Amiga icon .info file",          "\xe3\x10",
  289. X  4,"Amiga .info file",               "\xf3\x4c\x00\x12",
  290. X  2,"Amiga .font file",               "\x0f\x00",
  291. X  2,"SEA ARC compressed archive",     "\x1a\x08",
  292. X  NULL, NULL, NULL,
  293. X};
  294. X
  295. X/* for ascii files that start with a magic number */
  296. Xpattern amagic[] = {
  297. X  2, "shell script file",             "#!",
  298. X  2, "ARexx script file",             "/*",
  299. X  4, "execute script file",           ".key",
  300. X  4, "execute script file",           ".bra",
  301. X  4, "execute script file",           ".ket",
  302. X  NULL, NULL, NULL,
  303. X};
  304. X
  305. X/* patterns to search for in ascii files */
  306. Xpattern asearch[] = {
  307. X  14,"LaTeX source code",            "\\documentstyle",
  308. X  6, "TeX source code",              "\n\\",
  309. X  4, "C source code",                "int ",
  310. X  5, "C source code",                "\n#inc",
  311. X  5, "C source code",                "\n#def",
  312. X  2, "C source code",                "{\n",
  313. X  21,"Modula II source code",        "IMPLEMENTATION MODULE",
  314. X  17,"Modula II source code",        "DEFINITION MODULE",
  315. X  5, "execute script file",          "\n.key",
  316. X  5, "execute script file",          "\n.bra",
  317. X  5, "execute script file",          "\n.ket",
  318. X  1, "yacc input file",              "\n%TOKEN",
  319. X  1, "yacc or lex input file",       "\n%%",
  320. X  1, "shell commands",               "\nalias",
  321. X  1, "shell commands",               "\nAlias",
  322. X  1, "shell commands",               "\nset",
  323. X  1, "commands text",                "\nrun",
  324. X  1, "commands text",                "\nRun",
  325. X  1, "uuencoded file",               "\nbegin ",
  326. X  NULL, NULL, NULL,
  327. X};
  328. X
  329. Xpattern IFFforms[] = {
  330. X  4,"IFF interleave bit map file",        "ILBM",
  331. X  4,"IFF Amiga compressed bit map files", "ACBM",
  332. X  4,"IFF anim format file",               "ANIM",
  333. X  4,"IFF instrument file",                "8SVX",
  334. X  4,"IFF simple music file",              "SMUS",
  335. X  NULL, NULL, NULL,
  336. X};
  337. X
  338. Xpattern compress = {
  339. X  2,"block compressed %d bit code data",  "\x1f\x9d",
  340. X};
  341. X
  342. Xpattern zoo = {
  343. X  4,"Zoo archive",                        "ZOO ",
  344. X};
  345. X
  346. Xint type(ty,name)
  347. Xchar *ty,*name;
  348. X{
  349. X  printf("%-16s %s\n",name,ty);
  350. X}
  351. X
  352. Xint memncmp(a,b,length)
  353. Xchar *a, *b;
  354. Xint length;
  355. X{
  356. X  register int index;
  357. X
  358. X  for ( index = 0; index < length; index++ ) {
  359. X    if ( a[index] != b[index] ) {
  360. X      return(a[index] > b[index] ? -1 : 1);
  361. X    }
  362. X  }
  363. X
  364. X  return(0);
  365. X}
  366. X
  367. Xchar *strrpbrk(str, charset)
  368. Xregister char *str, *charset;
  369. X{
  370. X  register char *temp;
  371. X  extern char *index();
  372. X
  373. X  temp = str + strlen(str) - 1;
  374. X
  375. X  while ( temp != (str - 1)  && !index(charset, *temp) )
  376. X    --temp;
  377. X
  378. X  return( (temp != (str - 1)) ? temp : NULL);
  379. X}
  380. X
  381. Xchar *basename(buf)
  382. Xregister char *buf;
  383. X{
  384. X  register char *foo = strrpbrk(buf,":/");
  385. X
  386. X  return( foo ? (foo + 1) : buf );
  387. X}
  388. X
  389. Xusage(name)
  390. Xchar *name;
  391. X{
  392. X  printf("usage: %s file [file ...]\n",name);
  393. X  exit(-1);
  394. X}
  395. X
  396. Xmain(argc,argv)
  397. Xint argc;
  398. Xchar **argv;
  399. X{
  400. X  register int index;
  401. X  register char *myname;
  402. X
  403. X  /* if there are no arguments, take from the stdin */
  404. X  if ( argc <= 1 ) {
  405. X    usage(argv[0]);
  406. X  }
  407. X
  408. X  myname = basename(argv[0]);
  409. X
  410. X  for ( index = 1 ; index < argc ; index++ ) {
  411. X    filetype(myname,argv[index]);
  412. X  }
  413. X}
  414. X
  415. X#define FIBSIZE (long) sizeof(struct FileInfoBlock)
  416. Xextern char *AllocMem();
  417. Xextern struct FileLock *Lock();
  418. X
  419. X/* find whether file is directory or real file */
  420. Xfiletype(myname,filename)
  421. Xchar *myname, *filename;
  422. X{
  423. X  struct FileLock *lock;
  424. X  struct FileInfoBlock *fib;
  425. X
  426. X  if ( lock = Lock(filename,ACCESS_READ) ) {
  427. X    if ( fib = (struct FileInfoBlock *) AllocMem(FIBSIZE,MEMF_CLEAR) ) {
  428. X      Examine(lock,fib);
  429. X
  430. X      dofile(myname,filename,fib);
  431. X
  432. X      UnLock(lock);
  433. X      FreeMem(fib,FIBSIZE);
  434. X
  435. X    } else {
  436. X      UnLock(lock);
  437. X      fprintf(stderr,"%s: not enough memory!\n",myname,filename);
  438. X      exit(-1);
  439. X    }
  440. X  } else {
  441. X    fprintf(stderr,"%s: could not access file %s\n",myname,filename);
  442. X  }
  443. X}
  444. X
  445. X/* find what type of file filename is */
  446. Xint dofile(myname,filename,fib)
  447. Xchar *myname, *filename;
  448. Xstruct FileInfoBlock *fib;
  449. X{
  450. X  register char *f = &fib->fib_FileName[0];
  451. X
  452. X  if ( fib->fib_DirEntryType > 0 ) {
  453. X
  454. X    type("directory",f);
  455. X
  456. X  } else if ( fib->fib_Size == 0 ) {
  457. X
  458. X    type("empty",f);
  459. X
  460. X  } else {
  461. X    char *buf;
  462. X    long filehandle;
  463. X
  464. X    if ( !(filehandle = Open(filename,MODE_OLDFILE)) ) {
  465. X      fprintf(stderr,"%s: could not open file %s\n",myname,filename);
  466. X      return(0);
  467. X    }
  468. X
  469. X    if ( !(buf = AllocMem(BLOCKSIZE+1,MEMF_PUBLIC)) ) {
  470. X      fprintf(stderr,"%s: not enough memory\n",myname);
  471. X      Close(filehandle);
  472. X      return(0);
  473. X    }
  474. X
  475. X    if ( !Read(filehandle,buf,BLOCKSIZE) ) {
  476. X      fprintf(stderr,"%s: read error on file %s\n",myname,f);
  477. X      FreeMem(buf,BLOCKSIZE+1);
  478. X      Close(filehandle);
  479. X      return(0);
  480. X    }
  481. X
  482. X    matchtype(myname,buf,f,fib);
  483. X
  484. X    Close(filehandle);
  485. X    FreeMem(buf,BLOCKSIZE+1);
  486. X  }
  487. X
  488. X  return(0);
  489. X}
  490. X
  491. Xint isasciifile(buf,len)
  492. Xchar *buf;
  493. Xint len;
  494. X{
  495. X  register int index, flag = 1;
  496. X
  497. X  for ( index = 0; index < len ; index++ ) {
  498. X    if ( !isprint(buf[index]) && !isspace(buf[index]) ) {
  499. X      flag = 0;
  500. X      break;
  501. X    }
  502. X  }
  503. X
  504. X  return(flag);
  505. X}
  506. X
  507. Xmatchtype(myname,buf,file, fib)
  508. Xchar *myname, *buf, *file;
  509. Xstruct FileInfoBlock *fib;
  510. X{
  511. X  register int index;
  512. X  int len = (fib->fib_Size < BLOCKSIZE) ? fib->fib_Size : BLOCKSIZE;
  513. X
  514. X  if ( isasciifile(buf,len) ) {
  515. X
  516. X    index = 0;
  517. X
  518. X    /* check magic numbers */
  519. X    while ( asearch[index].length ) {
  520. X      if ( search(asearch[index].pattern,buf,len) ) {
  521. X        type(asearch[index].name,file);
  522. X        return(0);
  523. X      }
  524. X      ++index;
  525. X    }
  526. X
  527. X    index = 0;
  528. X
  529. X    /* check magic numbers */
  530. X    while ( amagic[index].length ) {
  531. X      if ( !memncmp(amagic[index].pattern,buf,amagic[index].length) ) {
  532. X        type(amagic[index].name,file);
  533. X        return(0);
  534. X      }
  535. X      ++index;
  536. X    }
  537. X
  538. X    /* check script bit */
  539. X    if ( fib->fib_Protection & (1<<6) ) {
  540. X      type("script file",file);
  541. X      return(0);
  542. X    }
  543. X
  544. X    type("text",file);
  545. X
  546. X  } else {
  547. X
  548. X    index = 0;
  549. X
  550. X    /* check magic numbers */
  551. X    while ( bmagic[index].length ) {
  552. X      if ( !memncmp(bmagic[index].pattern,buf,bmagic[index].length) ) {
  553. X        type(bmagic[index].name,file);
  554. X        return(0);
  555. X      }
  556. X      ++index;
  557. X    }
  558. X
  559. X    /* check for IFF forms -- assume FORM is first header block */
  560. X    if ( !memncmp("FORM",buf,4) ) {
  561. X      char buffer[40];
  562. X
  563. X      index = 0;
  564. X      buffer[0] = '\0';
  565. X
  566. X      while ( IFFforms[index].length ) {
  567. X        if ( !memncmp(IFFforms[index].pattern,&buf[8],IFFforms[index].length) ) {
  568. X          type(IFFforms[index].name,file);
  569. X          return(0);
  570. X        }
  571. X        ++index;
  572. X      }
  573. X      sprintf(buffer,"IFF form %c%c%c%c",buf[8],buf[9],buf[10],buf[11]);
  574. X      type(buffer,file);
  575. X      return(0);
  576. X    }
  577. X
  578. X    if ( !memncmp(compress.pattern,buf,compress.length) ) {
  579. X      char buffer[40];
  580. X
  581. X      sprintf(buffer,compress.name,buf[2]&0x0f);
  582. X      type(buffer,file);
  583. X      return(0);
  584. X    }
  585. X
  586. X    if ( !memncmp(zoo.pattern,buf,zoo.length) ) {
  587. X
  588. X      /* make a string out of ZOO x.xx Archive\0 to print out */
  589. X      buf[16] = '\0';
  590. X
  591. X      type(buf,file);
  592. X      return(0);
  593. X    }
  594. X
  595. X    type("data",file);
  596. X  }
  597. X}
  598. X
  599. Xint search(pat, text, len)
  600. Xchar *pat, *text;
  601. Xregister int len;
  602. X{
  603. X  register int index = 0, patlen = strlen(pat);
  604. X
  605. X  while ( memncmp(pat,&text[index],patlen) && index < len ) {
  606. X    index++;
  607. X  }
  608. X
  609. X  return(index < len ? 1 : 0);
  610. X}
  611. X
  612. X
  613. X
  614. X
  615. X
  616. X
  617. X
  618. X
  619. SHAR_EOF
  620. echo "extracting file.uu"
  621. sed 's/^X//' << \SHAR_EOF > file.uu
  622. X
  623. Xbegin 644 file
  624. XM```#\P`````````#``````````(```>4```!.`````$```/I```'E$[Z#))!^
  625. XM;6EG82!L;V%D(&9I;&4````#\P!!;6EG82!O8FIE8W0@9FEL90````/G`$%MB
  626. XM:6=A(')U;BUT:6UE(&QI8G)A<GD`[&(`36%N>"`S+C8@<G5N+71I;64@;&EB8
  627. XM<F%R>0!A:@!-86YX(#,N-B!O8FIE8W0@9FEL90!!2@!-86YX(#,N-"!O8FIE_
  628. XM8W0@9FEL90!J9P!495@@9&5V:6-E(&EN9&5P96YD96YT(&]U='!U="!F:6QE(
  629. XM`/<"`8.2P!P[``````/H&R!495@@;W5T<'5T(`!!;6EG82!I8V]N("YI;F9OP
  630. XM(&9I;&4`XQ``06UI9V$@+FEN9F\@9FEL90#S3``2`$%M:6=A("YF;VYT(&9IP
  631. XM;&4`#P``4T5!($%20R!C;VUP<F5S<V5D(&%R8VAI=F4`&@@``'-H96QL('-CV
  632. XM<FEP="!F:6QE`",A`$%297AX('-C<FEP="!F:6QE`"\J`&5X96-U=&4@<V-R4
  633. XM:7!T(&9I;&4`+FME>0!E>&5C=71E('-C<FEP="!F:6QE`"YB<F$`97AE8W5T=
  634. XM92!S8W)I<'0@9FEL90`N:V5T``!,851E6"!S;W5R8V4@8V]D90!<9&]C=6UE/
  635. XM;G1S='EL90!495@@<V]U<F-E(&-O9&4`"EP`0R!S;W5R8V4@8V]D90!I;G0@0
  636. XM`$,@<V]U<F-E(&-O9&4`"B-I;F,`0R!S;W5R8V4@8V]D90`*(V1E9@!#('-OF
  637. XM=7)C92!C;V1E`'L*`$UO9'5L82!)22!S;W5R8V4@8V]D90!)35!,14U%3E1!;
  638. XM5$E/3B!-3T153$4`36]D=6QA($E)('-O=7)C92!C;V1E`$1%1DE.251)3TX@I
  639. XM34]$54Q%`&5X96-U=&4@<V-R:7!T(&9I;&4`"BYK97D`97AE8W5T92!S8W)IS
  640. XM<'0@9FEL90`*+F)R80!E>&5C=71E('-C<FEP="!F:6QE``HN:V5T`'EA8V,@U
  641. XM:6YP=70@9FEL90`*)51/2T5.`'EA8V,@;W(@;&5X(&EN<'5T(&9I;&4`"B4E.
  642. XM`'-H96QL(&-O;6UA;F1S``IA;&EA<P!S:&5L;"!C;VUM86YD<P`*06QI87,`<
  643. XM<VAE;&P@8V]M;6%N9',`"G-E=`!C;VUM86YD<R!T97AT``IR=6X`8V]M;6%NQ
  644. XM9',@=&5X=``*4G5N`'5U96YC;V1E9"!F:6QE``IB96=I;B``249&(&EN=&5R]
  645. XM;&5A=F4@8FET(&UA<"!F:6QE`$E,0DT`249&($%M:6=A(&-O;7!R97-S960@W
  646. XM8FET(&UA<"!F:6QE<P!!0T)-`$E&1B!A;FEM(&9O<FUA="!F:6QE`$%.24T`+
  647. XM249&(&EN<W1R=6UE;G0@9FEL90`X4U98`$E&1B!S:6UP;&4@;75S:6,@9FELB
  648. XM90!33553``!B;&]C:R!C;VUP<F5S<V5D("5D(&)I="!C;V1E(&1A=&$`'YT`&
  649. XM`%IO;R!A<F-H:79E`%I/3R```$Y5```O+0`(+RT`#$AZ``Y.N@T.3^\`#$Y=I
  650. XM3G4E+3$V<R`E<PH`3E4``"\$>`!@,B!M``@B;0`,$#!(`+`Q2`!G'B!M``@BN
  651. XM;0`,$#!(`+`Q2`!O!'#_8`)P`2@?3EU.=5*$N*T`$&W(<`!@[DY5``!(YP@P<
  652. XM)&T`""9M``PO"DZZ!V!83]"**`!3A"!*4XBQQ&<:($00$$B`2,`O`"\+3KH'G
  653. XMBE!/2H!F!%.$8-X@2E.(L<1G!"`$8`)P`$S?#!!.74YU3E4``$CG`#`D;0`(=
  654. XM2'H`'B\*89903R9`(`MG!B`+4H!@`B`*3-\,`$Y=3G4Z+P``3E4``"\M``A(3
  655. XM>@`63KH,(%!/2'C__TZZ%<Q83TY=3G5U<V%G93H@)7,@9FEL92!;9FEL92`N/
  656. XM+BY="@``3E4``$CG""`,K0````$`"&X*(&T`#"\08:I83R!M``PO$$ZZ_W!8H
  657. XM3R1`>`%@%"`$Y8`@;0`,+S`(`"\*81)03U*$N*T`"&WF3-\$$$Y=3G5.5?_X1
  658. XM2'C__B\M``Q.NA=.4$\K0/_\9P``@DAY``$``$AX`01.NA>Z4$\K0/_X9SPOS
  659. XM+?_X+RW__$ZZ%O103R\M__@O+0`,+RT`"$ZZ`*!/[P`,+RW__$ZZ%T)83TAX<
  660. XM`00O+?_X3KH7H%!/8"PO+?_\3KH7*%A/+RT`#"\M``A(>@`V2&R"ZDZZ!>Q/S
  661. XM[P`02'C__TZZ%,183V`8+RT`#"\M``A(>@`J2&R"ZDZZ!<A/[P`03EU.=25S]
  662. XM.B!N;W0@96YO=6=H(&UE;6]R>2$*`"5S.B!C;W5L9"!N;W0@86-C97-S(&9IP
  663. XM;&4@)7,*`$Y5__@O"B1M`!!0BB!M`!!*J``$;Q`O"DAZ`1!.NOUX4$]@``$`\
  664. XM(&T`$$JH`'QF$"\*2'H!`$ZZ_5Y03V```.9(>`/M+RT`#$ZZ%CA03RM`__AF:
  665. XM("\M``PO+0`(2'H`W$AL@NI.N@4B3^\`$'``)%].74YU2'@``4AX`>5.NA9V#
  666. XM4$\K0/_\9B(O+0`(2'H`R$AL@NI.N@3R3^\`#"\M__A.NA5X6$]P`&#$2'@!'
  667. XMY"\M__PO+?_X3KH5Y$_O``Q*@&8T+PHO+0`(2'H`HTAL@NI.N@2V3^\`$$AXO
  668. XM`>4O+?_\3KH6.%!/+RW_^$ZZ%2Y83W``8`#_>B\M`!`O"B\M__PO+0`(3KH`H
  669. XMWD_O`!`O+?_X3KH5"%A/2'@!Y2\M__Q.NA7Z4$]P`&``_T9D:7)E8W1O<GD`H
  670. XM96UP='D`)7,Z(&-O=6QD(&YO="!O<&5N(&9I;&4@)7,*`"5S.B!N;W0@96YOB
  671. XM=6=H(&UE;6]R>0H`)7,Z(')E860@97)R;W(@;VX@9FEL92`E<PH`3E4``$CGP
  672. XM#`!Z`7@`8#X@;0`($#!(`$B`2,!![((]$C`(`$B!2,'"O````,=F'"!M``@0^
  673. XM,$@`2(!(P$'L@CT(,``$"`!F!'H`8`A2A+BM``QMO"`%3-\`,$Y=3G5.5?_48
  674. XM+P0@;0`4#*@```'D`'QL"B!M`!0@*`!\8`8@/````>0K0/_\+RW__"\M``Q.>
  675. XMNO]R4$]*@&<``/AX`'(,(`1.NA/.0>R`VDJP"`!G2B\M__PO+0`,<@P@!$ZZ9
  676. XM$[1![(#B+S`(`$ZZ`MI/[P`,2H!G(B\M`!!R#"`$3KH3E$'L@-XO,`@`3KK[P
  677. XM*%!/<``H'TY=3G52A&"D>`!R#"`$3KH3<$'L@))*L`@`9U)R#"`$3KH37D'LM
  678. XM@)(O,`@`+RT`#'(,(`1.NA-*0>R`FB\P"`!.NOL$3^\`#$J`9AXO+0`0<@P@_
  679. XM!$ZZ$RI![("6+S`(`$ZZ^KY03W``8)12A&"<(&T`%`@H``8`=V<4+RT`$$AZ_
  680. XM`@1.NOJ<4$]P`&``_W(O+0`02'H!_$ZZ^HA03V```>)X`'(,(`1.NA+80>R`4
  681. XM`DJP"`!G5'(,(`1.NA+&0>R``B\P"``O+0`,<@P@!$ZZ$K)![(`*+S`(`$ZZ3
  682. XM^FQ/[P`,2H!F("\M`!!R#"`$3KH2DD'L@`8O,`@`3KKZ)E!/<`!@`/[\4H1@;
  683. XMFDAX``0O+0`,2'H!@TZZ^C!/[P`,2H!F``#.>`!"+?_4<@P@!$ZZ$E)![('*&
  684. XM2K`(`&=8<@P@!$ZZ$D!![('*+S`(`"!M``Q0B"\(<@P@!$ZZ$BA![('2+S`(/
  685. XM`$ZZ^>)/[P`,2H!F("\M`!!R#"`$3KH2"$'L@<XO,`@`3KKYG%!/<`!@`/YR,
  686. XM4H1@EB!M``P0*``+2(!(P"\`(&T`#!`H``I(@$C`+P`@;0`,$"@`"4B`2,`O:
  687. XM`"!M``P0*``(2(!(P"\`2'H`SDAM_]1.N@8<3^\`&"\M`!!(;?_43KKY/%!/`
  688. XM<`!@`/X2+RR"$B\M``PO+((:3KKY2D_O``Q*@&8X(&T`#!`H``)(@$C`P+P`*
  689. XM```/+P`O+((62&W_U$ZZ!<Q/[P`,+RT`$$AM_]1.NOCL4$]P`&``_<(O+((>E
  690. XM+RT`#"\L@B9.NOCZ3^\`#$J`9AP@;0`,0B@`$"\M`!`O+0`,3KKXN%!/<`!@)
  691. XM`/V.+RT`$$AZ`#1.NOBD4$]@`/U\<V-R:7!T(&9I;&4`=&5X=`!&3U)-`$E&F
  692. XM1B!F;W)M("5C)6,E8R5C`&1A=&$``$Y5``!(YPX`*"T`$'H`+RT`"$ZZ`#I8Q
  693. XM3RP`+P8@;0`,T<4O""\M``A.NOAJ3^\`#$J`9PBZA&P$4H5@WKJ$;`1P`6`"K
  694. XM<`!,WP!P3EU.=2!O``0@"$H89OR1P"`(4X!.=4Y5```I;0`(A()(;0`0+RT`O
  695. XM#$AZ``Y.N@6X3^\`#$Y=3G5.50``+RR$@B\M``A.N@G"4$].74YU(&\`!"`O#
  696. XM``@2&&<*L@!F^"`(4X!.=7``3G5A<$/LA()%[(2"M<EF#C(\`!=K"'0`(L)1T
  697. XMR?_\*4^$CBQX``0I3H222.>`@`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<T/Z6
  698. XM`"!.KOYH*4"$EF8,+CP``X`'3J[_E&`$3KH`&E!/3G5D;W,N;&EB<F%R>0!)4
  699. XM^0``?_Y.=4Y5```O"DAY``$``#`LA';!_``&+P!.NA",*4"$FE!/9A1"ITAY-
  700. XM``$``$ZZ$$Q03RYLA(Y.=2!LA)I":``$(&R$FC%\``$`$"!LA)HQ?``!``H@U
  701. XM;(2.("R$CI"H``10@"E`A)X@;(2>(+Q-04Y80J=.NA!`)$!*J@"L6$]G,"\M0
  702. XM``PO+0`(+PI.N@"R*7P````!A*(@;(2:`&B````$(&R$F@!H@```"D_O``Q@+
  703. XM0DAJ`%Q.NA!<2&H`7$ZZ$!XI0(2F(&R$IDJH`"103V<0(&R$IB)H`"0O$4ZZI
  704. XM#OQ83R\LA*8O"DZZ`G@I;(2FA*I03TZZ#PX@;(2:((!.N@]$(&R$FB%```9G_
  705. XM%DAX`^U(>@`L3KH/("!LA)HA0``,4$\O+(2J+RR$KDZZ]TA"ITZZ#.I/[P`,O
  706. XM)%].74YU*@!.50``2.<,,"1M`!`@;0`(2J@`K&<8(&T`""`H`*SE@"@`($0@6
  707. XM*``0Y8`F0&`$)FR$>!`32(!(P-"M``Q4@"E`A+)"IR\LA+).N@\>*4"$ME!/5
  708. XM9@A,WPPP3EU.=1`32(!(P"H`+P4@2U*(+P@O+(2V3KH!CB!LA+;1Q4/Z`5@0^
  709. XMV6;\+RT`#"\*+RR$MDZZ`4X@;(2V0C!8`"E\`````82N(&R$MM'%)DA2BR1+&
  710. XM3^\`&!`32(!(P"H`L+P````@9R"ZO`````EG&+J\````#&<0NKP````-9PBZI
  711. XMO`````IF!%*+8,P,$P`@;0``C`P3`")F,E*+($M2BQ`02(!(P"H`9R`@2E**6
  712. XM$(6ZO````")F$`P3`")F!%*+8`9"*O__8`)@TF!$($M2BQ`02(!(P"H`9S"ZF
  713. XMO````"!G*+J\````"6<@NKP````,9QBZO`````UG$+J\````"F<(($I2BA"%V
  714. XM8,(@2E**0A!*A68"4XM2K(2N8`#_/$(20J<@+(2N4H#E@"\`3KH-XBE`A*I09
  715. XM3V8(0JR$KF``_KYZ`"9LA+9@'B`%Y8`@;(2J(8L(`"!+(`A*&&;\D<!3B%*(2
  716. XMU\A2A;JLA*YMW"`%Y8`@;(2J0K`(`&``_H(@`#`\?_]@!#`O``X@;P`$2AAFK
  717. XM_%-((F\`"%-`$-E7R/_\9P)"$"`O``1.=4SO`P``!"`((B\`#&`"$-E7R?_\$
  718. XM9P9206`"0AA1R?_\3G5.50``2.<.,"1M``A"ITAZ`(Y.N@UT*4"$NE!/9@A,_
  719. XMWPQP3EU.=2!M``PB:``D+RD`!$ZZ#:0H`%A/9U)(>@!M($0O*``V3KH-=B9`^
  720. XM2H!03V<T2'@#[2\+3KH,>BP`4$]G)"`&Y8`J`"!%)6@`"`"D)48`G$AX`^U(D
  721. XM>@`X3KH,5B5``*!03R\$3KH-0EA/+RR$NDZZ#)Y"K(2Z6$]@@&EC;VXN;&EB]
  722. XM<F%R>0!724Y$3U<`*@!.50``+P0I;0`(A(9(;0`0+RT`#$AZ`!I.N@#8*``@O
  723. XM;(2&0A`@!$_O``PH'TY=3G5.50``(&R$AE*LA(80+0`+$(!(@$C`P+P```#_/
  724. XM3EU.=4Y5``!(;0`,+RT`"$AZ!*!.N@"03^\`#$Y=3G5.50``2.<(("1M`!`,3
  725. XMK0````0`%&8((&T`""@08!1*K0`,;P@@;0`(*!!@!B!M``@H$$*M`!1*K0`,T
  726. XM;!)$K0`,2H1L"D2$*WP````!`!0B+0`,(`1.N@/60>R"*E.*%+`(`"(M``P@@
  727. XM!$ZZ`\XH`&;>2JT`%&<&4XH4O``M(`I,WP003EU.=4Y5_Q1(YP@P)&T`""9M[
  728. XM``Q"K?_X*VT`$/_\($M2BQ`02(!(P"@`9P`#-+B\````)68``PY"+?\B*WP`:
  729. XM```!__0K?````"#_\"M\```G$/_L($M2BQ`02(!(P"@`L+P````M9A!"K?_T$
  730. XM($M2BQ`02(!(P"@`N+P````P9A0K?````##_\"!+4HL0$$B`2,`H`+B\````8
  731. XM*F8:(&W__%BM__PK4/_H($M2BQ`02(!(P"@`8#1"K?_H8")R"B`M_^A.N@G>_
  732. XMT(20O````#`K0/_H($M2BQ`02(!(P"@`0>R"/0@P``)(`&;2N+P````N9F(@R
  733. XM2U*+$!!(@$C`*`"PO````"IF&B!M__Q8K?_\*U#_["!+4HL0$$B`2,`H`&`TX
  734. XM0JW_[&`B<@H@+?_L3KH)=-"$D+P````P*T#_["!+4HL0$$B`2,`H`$'L@CT(/
  735. XM,``"2`!FTBM\````!/_DN+P```!L9A8@2U*+$!!(@$C`*``K?`````3_Y&`4^
  736. XMN+P```!H9@P@2U*+$!!(@$C`*``@!&```((K?`````C_X&`<*WP````*_^!@N
  737. XM$BM\````$/_@8`@K?/____;_X"\M_^1(;?\B+RW_X"\M__Q.NOVR*T#_W"`MZ
  738. XM_^31K?_\3^\`$&!<(&W__%BM__PB4"M)_]P@"4H99OR3P%.)*TG_Y&!*(&W_9
  739. XM_%BM__PH$$'M_R$K2/_<$(1@*)"\````8V?B4X!GDI"\````"V<`_VQ9@&>R+
  740. XM58!G`/]L5X!G`/]P8,Q![?\BD>W_W"M(_^0@+?_DL*W_[&\&*VW_[/_D2JW_'
  741. XM]&=P(&W_W`P0`"UG"B!M_]P,$``K9C0,K0```##_\&8J4ZW_Z"!M_]Q2K?_<'
  742. XM$!!(@$C`+P!.DK"\_____UA/9@IP_TS?#!!.74YU8!@O+?_P3I*PO/____]8%
  743. XM3V8$</]@XE*M__@@+?_H4ZW_Z+"M_^1NVD*M_^!@)"!M_]Q2K?_<$!!(@$C`'
  744. XM+P!.DK"\_____UA/9@1P_V"J4JW_X"!M_]Q*$&<*("W_X+"M_^QMRB`M_^#1Z
  745. XMK?_X2JW_]&8J8!I(>``@3I*PO/____]83V8&</]@`/]P4JW_^"`M_^A3K?_HB
  746. XML*W_Y&[88!@O!$Z2L+S_____6$]F!G#_8`#_2%*M__A@`/S`("W_^&``_SA(7
  747. XMYT@`0H1*@&H$1(!21$J!:@9$@0I$``%A/DI$9P)$@$S?`!)*@$YU2.=(`$*$W
  748. XM2H!J!$2`4D1*@6H"1(%A&B`!8-@O`6$2(`$B'TJ`3G4O`6$&(A]*@$YU2.<PX
  749. XM`$A!2D%F($A!-@$T`$)`2$"`PR(`2$`R`H+#,`%"04A!3-\`#$YU2$$F`2(`'
  750. XM0D%(04A`0D!T#]"`TX&V@6($DH-20%'*__),WP`,3G5.50``2&R"U"\M``A.F
  751. XMN@`(4$].74YU3E4``"\$*"T`""\M``PO!$ZZ`#2XO`````I03V8F(&T`#!`H3
  752. XM``Q(@$C`"```!V<42'C__R\M``Q.N@#\4$\H'TY=3G5@^$Y5```O"B1M``P@5
  753. XM4K'J``1E&B`M``C`O````/\O`"\*3KH`SE!/)%].74YU(%)2DA`M``L0@$B`$
  754. XM2,#`O````/]@Y$Y5```O"D'L@KXD2"!*U?P````6+PAA$%A/0>R$=K7(9>HDS
  755. XM7TY=3G5.50``2.<(("1M``AX`"`*9@IP_TS?!!!.74YU2BH`#&=2""H``@`,'
  756. XM9PQ(>/__+PIA5"@`4$\0*@`-2(!(P"\`3KH%-(B`""H``0`,6$]G"B\J``A.[
  757. XMN@(\6$\(*@`%``QG$B\J`!).N@+8+RH`$DZZ`B)03T*20JH`!$*J``A"*@`,.
  758. XM(`1@CDY5__Y(YP@@)&T`"$'Z_T0I2(2^""H`!``,9PIP_TS?!!!.74YU""H`4
  759. XM`@`,9S0@4I'J``@H""\$+RH`"!`J``U(@$C`+P!.N@*6L(1/[P`,9Q`(Z@`$S
  760. XM``Q"DD*J``1P_V"\#*W_____``QF$`BJ``(`#$*20JH`!'``8*)*J@`(9@@OA
  761. XM"DZZ`*183PQJ``$`$&8P&VT`#___2'@``4AM__\0*@`-2(!(P"\`3KH",K"\Q
  762. XM`````4_O``QFF"`M``Q@`/]>)*H`"#`J`!!(P-"J``@E0``$".H``@`,(%)26
  763. XMDA`M``\0@$B`2,#`O````/]@`/\N3E4``"\*0>R"OB1(2BH`#&<8U?P````6A
  764. XM0>R$=K7(90AP`"1?3EU.=6#B0I)"J@`$0JH`""`*8.I.5?_\+PHD;0`(2'@$4
  765. XM`$ZZ`,(K0/_\6$]F\``$`$"!*T?P````.)4@`""1?3EU.=35\!```$`CJY
  766. XM``$`#"5M__P`"!`J``U(@$C`+P!.N@#>2H!83V<&`"H`@``,8,Q.50``2.<`@
  767. XM,"1LA(I@%"92("H`!%"`+P`O"DZZ!,A03R1+(`IFZ$*LA(I,WPP`3EU.=4Y5>
  768. XM```O"D'Z_\8I2(3"0J<@+0`(4(`O`$ZZ!'(D0$J`4$]F"'``)%].74YU)*R$;
  769. XMBB5M``@`!"E*A(H@"E"`8.9.50``+RT`"&&V6$].74YU3E4``$CG`#"7RR1L0
  770. XMA(I@#B!M``A1B+'*9Q(F2B12(`IF[G#_3-\,`$Y=3G4@"V<$)I)@!"E2A(H@Q
  771. XM*@`$4(`O`"\*3KH$'G``4$]@V$Y5```O"G(&("T`"$ZZ`N`D0-7LA)I*K0`(L
  772. XM;1(P+(1V2,`B+0`(LH!L!$J29A`I?`````*$QG#_)%].74YU<@8@+0`(3KH"0
  773. XMJ"!LA)HO,`@`3KH#"DJ`6$]G!'`!8`)P`?E4``"\M``A.N@+"2H!83V8.;
  774. XM3KH"WBE`A,9P_TY=3G5P`Ϥ``$CG#"`H+0`(3KH`=G(&(`1.N@)2)$#5*
  775. XM[(2:2H1M#C`LA'9(P+B`;`1*DF82*7P````"A,9P_TS?!#!.74YU,"H`!,!\T
  776. XM``-F#"E\````!83&</]@XB\M`!`O+0`,+Q).N@+,*@"PO/____]/[P`,9@Q.A
  777. XMN@)8*4"$QG#_8+H@!6"V3E7__$AX$`!"ITZZ`S@K0/_\"```#%!/9Q)*K(2B3
  778. XM9@@@+?_\3EU.=4ZZ``9P`&#T3E4``$AX``1(>@`<3KH"1"\`3KH":$AX``%.Y
  779. XMN@`.3^\`$$Y=3G5>0PH`3E4``$JLA+YG!B!LA+Y.D"\M``A.N@`(6$].74YUL
  780. XM3E7__"\$*VT`"/_\2JR$FF<L>`!@"B\$3KH`_%A/4H0P+(1V2,"X@&WL,"R$X
  781. XM=L'\``8O`"\LA)I.N@):4$]*K(3"9P8@;(3"3I!*K(1\9PHO+(1\3KH!SEA/]
  782. XM2JR$RF<((&R$RB"LA,Y*K(329PHO+(323KH!ZEA/2JR$UF<*+RR$UDZZ`=I8D
  783. XM3TJLA-IG"B\LA-I.N@'*6$]*K(3>9PHO+(3>3KH!NEA/+'@`!`@N``0!*6<4^
  784. XM+PU+^@`*3J[_XBI?8`9"I_-?3G-*K(2F9BI*K(2V9R(O+(2R+RR$MDZZ`;8@!
  785. XM+(2N4H#E@"\`+RR$JDZZ`:1/[P`08`Y.N@&.+RR$IDZZ`;Y83R`M__PN;(2.T
  786. XM3G4H'TY=3G5.50``2.<.("@M``AR!B`$3KH`1"1`U>R$FDJ$;0XP+(1V2,"X?
  787. XM@&P$2I)F$BE\`````H3&</],WP1P3EU.=3`J``3`?(``9@@O$DZZ`#)83T*2O
  788. XM<`!@X$CG<``T`<3`)@%(0\;`2$-"0]2#2$#`P4A`0D#0@DS?``Y.=4[Z``(BT
  789. XM+P`$+&R$ED[N_]PB+P`$+&R$ED[N_X(B+P`$+&R$ED[N_[A.^@`"3.\`!@`$)
  790. XM+&R$ED[N_YHL;(263N[_RBQLA)9.[O]\(B\`!"QLA)9.[O\H3OH``DSO``8`<
  791. XM!"QLA)9.[O^L3OH``DSO``8`!"QLA)9.[O_B+&R$ED[N_\1.^@`"3.\`#@`$#
  792. XM+&R$ED[N_]9.^@`"(B\`!"QLA)9.[O^F3.\`#@`$+&R$ED[N_]!(YP$$3.\@.
  793. XM@``,+&R$DDZN_Y1,WR"`3G5.^@`"(F\`!"QLA)).[OYB3OH``DSO``,`!"QLD
  794. XMA)).[O\Z(F\`!"QLA)).[O[:+&R$DD[N_WQ.^@`"(F\`!"`O``@L;(223N[_F
  795. XM+B!O``0L;(223N[^C"QLA)(B;P`$("\`"$[N_=@B;P`$+&R$DD[N_H9,[P`#A
  796. XM``0L;(223N[^SB!O``0L;(223N[^@$SO`P``!"QLA+I.[O^@(&\`!"QLA+I.?
  797. XM[O^F(&\`!"QLA+I.[O^R```#[`````$````!```-"`````````/R```#Z@``1
  798. XM`2`````$````!````!0````$````&0```"L````"````,````$<````"`````
  799. XM2@```&0````"````9P```'P````"````?P```)0````;````EP```+H````"6
  800. XM````U@```.P````$````[P```0`````"```!!0```18````"```!&0```30`F
  801. XM```````````````````"```!.````4H````"```!30```5\````$```!8@``=
  802. XM`78````$```!>P```8\````$```!E````:@````````````````````.```!8
  803. XMK@```<`````&```!SP```=\````$```!X@```?`````%```!]0```@,````%"
  804. XM```""0```A<````"```"'0```BL````5```"+@```D0````1```"6@```G``<
  805. XM```%```"@@```I8````%```"G````K`````%```"M@```LH````!```"T```2
  806. XM`N`````!```"Z````O\````!```#`P```Q(````!```#&0```R@````!```#V
  807. XM+P```SX````!```#0P```U$````!```#5@```V0````!```#:0```W@`````T
  808. XM```````````````$```#@````YP````$```#H0```\0````$```#R0```]X`&
  809. XM```$```#XP```_<````$```#_```!!(````````````````````"```$&```;
  810. XM!#H````$```$/@``!$HP,3(S-#4V-S@Y86)C9&5F````("`@("`@("`@,#`PD
  811. XM,#`@("`@("`@("`@("`@("`@(""00$!`0$!`0$!`0$!`0$!`#`P,#`P,#`P,<
  812. XM#$!`0$!`0$`)"0D)"0D!`0$!`0$!`0$!`0$!`0$!`0$!`4!`0$!`0`H*"@H*(
  813. XM"@("`@("`@("`@("`@("`@("`@("0$!`0"```````````````````0`````!4
  814. XM``````````````````````$!`````0`````````````````````!`@````$`'
  815. XM`````````````````````````````````````````````````````````````
  816. XM`````````````````````````````````````````````````````````````
  817. XM`````````````````````````````````````````````````````````````
  818. XM`````````````````````````````````````````````````````````````
  819. XM`````````````````````````````````````````````````````````````
  820. XM`````````````````````````````````````````````````````````````
  821. XM`````````````````````````````````````````````````````````````
  822. XM`````````````````````````````````````````````````````````````
  823. XM````````````````````````%`````````````````/L````5``````````$;
  824. XM````"````!`````4````'````"`````H````+````#0````X````0````$0`L
  825. XM``!,````4````%@```!<````9````&@```!P````=````'P```"`````E```0
  826. XM`)@```"@````I````*P```"P````N````+P```#$````R````-P```#@````T
  827. XMZ````.P```#T````^````0````$$```!#````1````$8```!'````20```$HH
  828. XM```!,````30```$\```!0````4@```%,```!5````5@```%@```!9````6P`;
  829. XM``%P```!>````7P```&$```!B````9````&4```!G````:````&H```!K```O
  830. XM`;0```&X```!S````=````'8```!W````>0```'H```!\````?0```'\```"U
  831. XE`````A0```(8```"(````B0````````#\@```^L````!```#\O0`%
  832. X``
  833. Xend
  834. Xsize 9352
  835. SHAR_EOF
  836. echo "End of archive 1 (of 1)"
  837. # if you want to concatenate archives, remove anything after this line
  838. exit
  839.